1. Файл meson.build

20-09-2026 1 min

Для нашего проекта создадим папку HyprCalendarWidget, внутри папки создадим файл meson.build

project('hypr_calendar_widget', 'vala', version:'0.1')

depts = [
    dependency('gtk4'),
    dependency('gtk4-layer-shell-0')
]

sources = files(
    'src/MainWindow.vala',
    'src/Application.vala'
)

executable(
    'hypr_calendar_widget',
    sources,
    dependencies: depts,
    vala_args: ['--pkg', 'posix']
)

Разберём этот файл:

В этой строке задаётся имя программы, язык на котором она будет написана, и версия

project('hypr_calendar_widget', 'vala', version:'0.1')

В depts перечисляются зависимости проекта

  1. gtk4 - графическая библиотека для создания ui
  2. gtk4-layer-shell-0 - библиотека для GTK4-приложений, которая позволяет окнам взаимодействовать с протоколом Layer Shell в композиторах на базе Wayland, с его помощью можно расположить окно по верх всех приложений, или зарезервировать для него место, как это делает waybar
depts = [
    dependency('gtk4'),
    dependency('gtk4-layer-shell-0')
]

В sources перечислены файлы с кодом нашего приложения

sources = files(
    'src/MainWindow.vala',
    'src/Application.vala'
)

В секции executable прописано имя приложения, массив имен файлов с кодом sources, массив с именами зависимостей depts и подключение библиотеки posix vala_args: ['--pkg', 'posix'] для того чтобы иметь возможность посылать сигналы нашему виджету

executable(
    'hypr_calendar_widget',
    sources,
    dependencies: depts,
    vala_args: ['--pkg', 'posix']
)